import pyttsx3

def text_to_speech(text, output_file=None):
    engine = pyttsx3.init()
    engine.setProperty('rate', 150)  # 语速
    engine.setProperty('volume', 1.0)  # 音量

    if output_file:
        engine.save_to_file(text, output_file)
        engine.runAndWait()
        print(f"语音已保存到 {output_file}")
    else:
        engine.say(text)
        engine.runAndWait()

if __name__ == '__main__':
    text = input("请输入要转换为语音的文本：")
    save = input("是否保存为音频文件？(y/n)：").strip().lower()
    if save == 'y':
        output_file = input("请输入输出文件名(如 output.mp3)：")
        text_to_speech(text, output_file)
    else:
        text_to_speech(text)